#!/usr/bin/python
# encoding: utf-8
import re
from django.conf import settings
from django.contrib.gis.db import models
from django.contrib.gis.geos import Point

from incidencias import Municipio, Carretera

municipios = {'01006':u'Armiñón',
              '01058':u'Legutiano',
              '01046':u'Ribera Alta',
              '01009':u'Asparrena',
              '01047':u'Ribera Baja/Erribera Beitia',
              '01021':u'Elburgo',
              '01063':u'Zuia',
              '01020':u'Kuartango',
              '01059':u'Vitoria-Gasteiz',
              '20058':u'Olaberria',
              '20030':u'Eibar',
              '20902':u'Lasarte',
              '20046':u'Irura',
              '20045':u'Irun',
              '20043':u'Idiazabal',
              '20073':u'Usurbil',
              '20009':u'Andoain',
              '20069':u'San Sebastián',
              '48902':u'Erandio',
              '48020':u'Bilbao',
              '48013':u'Barakaldo',
              '48015':u'Basauri',
              '48036':u'Galdakao',
              '48019':u'Berriz',
              '48054':u'Leioa',
              '48011':u'Arrigorriaga',
              '48009':u'Arrankudiaga',
             }

provincias = {'"01':u'Alava',
              '"20':u'Guipúzcoa',
              '"48':u'Vizcaya',
             }

class Camera(models.Model):
    point = models.PointField(blank=False, null=True)
    name = models.CharField(blank=False, max_length=100)
    label = models.CharField(blank=False, max_length=100)
    url = models.CharField(blank=False, max_length=300)
    sentido = models.CharField(blank=True, max_length=100)
    pkm = models.CharField(blank=False, max_length=100)
    
    municipio = models.ForeignKey(Municipio)
    provincia = models.ForeignKey("Provincia")
    carretera = models.ForeignKey(Carretera)
    
    objects = models.GeoManager()
    
    def set_data(self, idioma,latitud,longitud,nombre,sentido,municipio,carretera,pk,provincia,imagen_detalle_camara,identificador,camara):
        from puertos import Provincia
        
        #coords
        self.point = u"POINT (%s %s)" % (latitud, longitud)
        
        #nombre
        self.name = nombre
        
        #label
        self.label = nombre
        
        #sentido
        self.sentido = sentido
        
        #municipio
        mi_municipio = None
        try:
            mi_municipio = municipios.get(municipio)
        except:
            mi_municipio = municipio
        municipio, created = Municipio.objects.get_or_create(name=mi_municipio)
        if created:
            municipio.save()
        self.municipio = municipio
        
        #carretera
        carretera, created = Carretera.objects.get_or_create(name=carretera)
        if created:
            carretera.save()
        self.carretera = carretera
        
        #pkm
        self.pkm = pk
        print self.municipio
        
        #provincia
        mi_provincia = None
        try:
            mi_provincia = provincias.get(provincia)
        except:
            mi_provincia = provincia
        provincia, created = Provincia.objects.get_or_create(name=mi_provincia)
        if created:
            provincia.save()
        self.provincia = provincia
        #imagen_detalle_camara
        self.url = imagen_detalle_camara[1:]
    
    class Meta:
        app_label = 'mobile'
        
    def __unicode__(self):
        return self.name